package net.zoneland.knowledge.model;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.Data;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

import net.zoneland.knowledge.utils.DateHelper;

/**
 * 会议签到.
 * @author chw.
 * @version V1.0
 * 2022-11-17
 */
@Data
public class MeetingSignIn implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID.
     */
    private String id;

    /**
     * 会议标题.
     */
    private String meetingTitle;

    /**
     * 会议id.
     */
    private String meetingId;

    /**
     * 签到人员ID.
     */
    private String signInUserId;

    /**
     * 签到人员名称.
     */
    private String signInUserName;

    /**
     * 签到时间.
     */
    @DateTimeFormat(pattern = DateHelper.CHINA_DATE_FORMAT_STR)  //接收从页面传到后台的日期值
    @JsonFormat(pattern = DateHelper.CHINA_DATE_FORMAT_STR)      //从后台向前台传递日期值
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)		// 反序列化
    @JsonSerialize(using = LocalDateTimeSerializer.class)		// 序列化
    private LocalDateTime signInDate;

    /**
     * 创建时间.
     */
    @DateTimeFormat(pattern = DateHelper.CHINA_DATE_FORMAT_STR)   //接收从页面传到后台的日期值
    @JsonFormat(pattern = DateHelper.CHINA_DATE_FORMAT_STR)       //从后台向前台传递日期值
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)		// 反序列化
    @JsonSerialize(using = LocalDateTimeSerializer.class)		// 序列化
    private LocalDateTime crateTime;

    /**
     * 最后修改时间.
     */
    @DateTimeFormat(pattern = DateHelper.CHINA_DATE_FORMAT_STR)   //接收从页面传到后台的日期值
    @JsonFormat(pattern = DateHelper.CHINA_DATE_FORMAT_STR)       //从后台向前台传递日期值
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)		// 反序列化
    @JsonSerialize(using = LocalDateTimeSerializer.class)		// 序列化
    private LocalDateTime lastModified;

    /**
     * 手机号.
     */
    private String mobile;

    /**
     * 员工编号.
     */
    private String empNo;

    /**
     * 职务.
     */
    private String job;

    /**
     * 部门名称.
     */
    private String deptName;

    /**
     * 公司名称.
     */
    public String companyName;

    /**
     * 公司Dn.
     */
    public String companyDn;

    /**
     * 排序.
     */
    public int orderNum;
}
